\documentclass{article}
\usepackage[utf8]{inputenc}
\begin{document}

\title{Projeto de Banco de Dados - Relatório Final}
\maketitle

\author{Guilherme Selau Ribeiro: NumCartão, Matheus Priebe Bertram: 161900}

\abstract No presente trabalho, são analisados aspectos de carga, atualização, pesquisa e similaridade em bancos de dados realísticos - o DBLP e a obra de Shakespeare. Os algoritmos usados são discutidos, bem como os resultados obtidos.

\section{Esquemas de numeração usados}
Para a carga dos arquivos XML, foram usados os esquemas de numeração Dewey \cite{dewey} e Order-Size \cite{ordersize}.

A tabela com o esquema de numeração \emph{dewey} tem os seguintes campos:

\begin{itemize}
\item dewey (varchar): chave primária contendo o índice;
\item value (text): conteúdo do nodo;
\item attributes (text): atributos de uma tag;
\item datatype (text): pode assumir os valores \emph{tag} ou \emph{text}, para diferenciar entre nodos de tags e nodos de texto, respectivamente;
\item father\_id (varchar): chave estrangeira para a coluna dewey da própria tabela, para identificar o nodo pai de um nodo;
\item order\_rec (integer): ordem de inserção dos nodos na tabela, para facilitar a reconstrução do XML.
\end{itemize}

Já a tabela para o esquema de numeração Order-Size é composta pelos seguintes campos:

\begin{itemize}
\item id (integer): chave primária de cada linha da tabela;
\item father\_id (integer): chave estrangeira que referencia o campo id explicitado logo acima, para relacionar um nodo com seu pai;
\item oder (integer): implementa o campo \emph{order} do esquema de numeração;
\item size (integer): implementa o campo \emph{size} do esquema de numeração;
\item value (text): conteúdo do nodo (texto ou tag);
\item attributes (text): atributos de uma tag.
\end{itemize}

\section{Software e hardware utilizados}
Para a realização deste trabalho, foram utilizados a linguagem Java e o SGBD Postgres. Os testes para a carga do DBLP e das obras de Shakespeare com o esquema de numeração \emph{dewey} foram realizados em uma máquina com as seguintes configurações:

\begin{itemize}
\item Intel Core 2 Duo 2.1GHz
\item 4GB de memória RAM
\item Windows Vista 32-bit
\end{itemize}

Já os testes para os mesmos bancos de dados com o esquema de numeração \emph{order-size} foram realizados em uma máquina com as seguintes configurações:

\begin{itemize}
\item 
\end{itemize}

\section{Tempos de carga}
A seguir são apresentados os tempos de carga para as bases de dados, com as devidas explicações. As mesmas foram criadas usando o comando \emph{COPY} presente no SQL do Postrgres, após ser gerado por software um arquivo com todas as entradas para as tabelas.

\subsection{DBLP com o esquema Dewey}
Os tempos de carga neste caso foram os seguintes:

\begin{itemize}
\item $ 389267 ms $ (criar arquivo de carga)
\item $ 1860245 ms $ (carregar o arquivo na tabela)
\item $ 1052330 ms $ (criação da restrição de chave primária)
\item $ 4069222 ms $ (criação da restrição de chave estrangeira)
\item $ 2049567 ms $ (criação dos índices para os campos \emph{value} e \emph{father\_id} da tabela)
\end{itemize}

Estes tempos somados resultam em $ 9420631 ms $, ou seja, $  t_{carga} \approx 157min $.

\subsection{Shakespeare com o esquema Dewey}
Os tempos de carga para o arquivo \emph{hamlet.xml} foram os seguintes:

\begin{itemize}
\item $ 379 ms $ (criar arquivo de carga)
\item $ 863 ms $ (carregar o arquivo na tabela)
\item $ 301 ms $ (criação da restrição de chave primária)
\item $ 314 ms $ (criação dos índices para os campos \emph{value} e \emph{father\_id} da tabela)
\end{itemize}

Estes tempos somados resultam em $ 1857 ms $, ou seja, $  t_{carga} \approx 1,857s $. Vale salientar, aqui, que a restrição de chave estrangeira já estava adicionada no momento da carga do banco de dados.

\bibliographystyle{plain}
\bibliography{relatorio}

\end{document}